package org.framework.common.cui;

import org.framework.common.api.entity.CommonMessage;
import org.framework.common.api.service.bo.CommonMessageBo;
import org.framework.common.api.websocket.handler.WebsocketEndNotify;
import org.framework.common.ext.util.JPushUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 消息服务控制器
 * <p>描述: </p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date 2016年5月16日 下午3:36:02
 * @version 1.0.2016
 */
@RestController
public class CommonMessageController extends AbstractController {

	@Autowired
	private CommonMessageBo bo;
	
	@Autowired
	private WebsocketEndNotify notify;
	
	/**
	 * 发送消息.
	 * @return
	 * @throws Exception
	 * @author chanlong(陈龙)
	 * @date 2016年5月16日 下午3:37:51
	 */
	@RequestMapping("/message/send")
	public Object send(@ModelAttribute CommonMessage model) throws Exception {
		try{
			// 注册数据源
			registerDataSource(null);
			
			// 保存消息
			CommonMessage message = bo.insert(model);
			
			// 发送消息
			notify.sendMessage(message.getTextMessage());
			
			return success("发送消息成功！");
		} catch (Exception e) {
			return error("发送消息失败！",e);
		}
	}
	/**
	 * 推送消息.
	 * @param model
	 * @return
	 * @throws Exception
	 * @author Administrator(陈龙)
	 * @date 2016年6月15日 下午1:55:44
	 */
	@RequestMapping("/message/jpush")
	public Object jpush(@ModelAttribute CommonMessage model) throws Exception{
		try{
			// 注册数据源
			registerDataSource(null);
			
			// 保存消息
			CommonMessage bean = bo.insert(model);
			
			// 推送公告
			JPushUtil.sendPush(false, bean.getMessage(), new String[]{bean.getInfo()});
			
			return success("发送消息成功！");
		} catch (Exception e) {
			//e.printStackTrace();
			return error("发送消息失败！",e);
		}
	}
}
